home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / earcd / emula / arosdv19.lha / AROS / include / exec / libraries.h next >
C/C++ Source or Header  |  1996-10-23  |  2KB  |  74 lines

  1. #ifndef EXEC_LIBRARIES_H
  2. #define EXEC_LIBRARIES_H
  3.  
  4. /*
  5.     (C) 1995-95 AROS - The Amiga Replacement OS
  6.     $Id: libraries.h,v 1.2 1996/10/23 14:04:32 aros Exp $
  7.  
  8.     Desc: Amiga header file exec/libraries.h
  9.     Lang: english
  10. */
  11.  
  12. #ifndef EXEC_NODES_H
  13. #   include <exec/nodes.h>
  14. #endif
  15. #ifndef AROS_MACHINE_H
  16. #   include <aros/machine.h>
  17. #endif
  18.  
  19. /* Library constants */
  20. /* LIB_VECTSIZE is in aros/machine.h */
  21. #define LIB_RESERVED    4    /* Exec reserves the first 4 vectors */
  22. #define LIB_BASE    (-LIB_VECTSIZE)
  23. #define LIB_USERDEF    (LIB_BASE-(LIB_RESERVED*LIB_VECTSIZE))
  24. #define LIB_NONSTD    (LIB_USERDEF)
  25.  
  26. /* Standard vectors */
  27. #define LIB_OPEN    (LIB_BASE*1)
  28. #define LIB_CLOSE    (LIB_BASE*2)
  29. #define LIB_EXPUNGE    (LIB_BASE*3)
  30. #define LIB_EXTFUNC    (LIB_BASE*4)  /* for future expansion */
  31.  
  32.  
  33. /* Library structure. Also used by Devices and some Resources. */
  34. struct Library {
  35.     struct  Node lib_Node;
  36.     UBYTE   lib_Flags;
  37.     UBYTE   lib_pad;
  38.     UWORD   lib_NegSize;        /* number of bytes before library */
  39.     UWORD   lib_PosSize;        /* number of bytes after library */
  40.     UWORD   lib_Version;        /* major */
  41.     UWORD   lib_Revision;        /* minor */
  42. #ifdef AROS_NEED_LONG_ALIGN
  43.     UWORD   lib_pad1;            /* make sure it is longword aligned */
  44. #endif
  45.     APTR    lib_IdString;        /* ASCII identification */
  46.     ULONG   lib_Sum;            /* the checksum */
  47.     UWORD   lib_OpenCnt;        /* How many people use us right now ? */
  48. #ifdef AROS_NEED_LONG_ALIGN
  49.     UWORD   lib_pad2;            /* make sure it is longword aligned */
  50. #endif
  51. };
  52.  
  53. /* lib_Flags bits (all others are reserved by the system) */
  54. #define LIBF_SUMMING    (1<<0)      /* lib is currently beeing checksummed */
  55. #define LIBF_CHANGED    (1<<1)      /* lib has changed */
  56. #define LIBF_SUMUSED    (1<<2)      /* sum should be checked */
  57. #define LIBF_DELEXP    (1<<3)      /* delayed expunge */
  58.  
  59. #ifdef AROS_LIB_OBSOLETE
  60. /* Temporary Compatibility */
  61. #define lh_Node     lib_Node
  62. #define lh_Flags    lib_Flags
  63. #define lh_pad        lib_pad
  64. #define lh_NegSize    lib_NegSize
  65. #define lh_PosSize    lib_PosSize
  66. #define lh_Version    lib_Version
  67. #define lh_Revision    lib_Revision
  68. #define lh_IdString    lib_IdString
  69. #define lh_Sum        lib_Sum
  70. #define lh_OpenCnt    lib_OpenCnt
  71. #endif
  72.  
  73. #endif    /* EXEC_LIBRARIES_H */
  74.